package exception_learn;

/**
 * @author yuisama
 * @date 2022/09/23 21:14
 * 常见的几种异常
 **/
public class NormalException {
    public static void main(String[] args) {
//        System.out.println(10 / 0);
//        int[] data = new int[3];
//        // 越界
//        System.out.println(data[3]);
//        String str = "hello";
//        char c = str.charAt(5);
//        System.out.println(c);
//        str = null;
//        System.out.println(str.length());
        System.out.println("异常发生前的代码");
        try {
            // 产生异常，不处理的话，程序从该行终止运行
            System.out.println(10 / 0 + "第一次执行");
            // try出现异常之后的代码不再执行
            System.out.println(10 / 0 + "第二次执行");
            // 此时catch块捕获不到NPE异常
        }catch (ArithmeticException e) {
            // 错误输出
            System.err.println("算数异常产生了!");
            // 可以打印出具体的异常原因以及产生位置
            e.printStackTrace();
        }
        System.out.println("异常发生之后的代码");
    }
}

//class Person {
//    @Override
//    protected Person clone() {
//        Person per = null;
//        try {
//           per =  (Person) super.clone();
            // 受查异常
//        }catch (CloneNotSupportedException exception) {
//
//        }
//        return per;
//    }
//}